// 本文件由gen_static_data_code生成
// 请遵照提示添加修改！！！
package {{.Package}}

{{range .Enums}}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// enum [{{.Name}}] begin

{{$EnumName := .Name}}

{{if .Comment}}// {{.Comment}}{{end}}
type {{.Name}} int

const (
    {{$EnumName}}_Null {{$EnumName}} = 0
    {{range .Values}}
    {{if .Comment}} // {{.Comment}}{{end}}
	{{$EnumName}}_{{.Name}} {{$EnumName}} = {{.Value}} {{end}}
)

var {{.Name}}_name = map[int]string{
	{{range .Values}}{{.Value}}:"{{$EnumName}}_{{.Name}}",
	{{end}}
	}

var {{.Name}}_value = map[string]int{
	{{range .Values}}"{{$EnumName}}_{{.Name}}":{{.Value}},
	{{end}}
	}

var {{.Name}}_Slice = []int{
	{{range .Values}}{{.Value}},
	{{end}}
	}

func (x {{.Name}}) String() string {
	if name, ok := {{.Name}}_name[int(x)]; ok {
		return name
	}
	return ""
}

func {{.Name}}_Size() int {
	return len({{.Name}}_Slice)
}

func Check_{{.Name}}_I(value int) bool {
	if _, ok := {{.Name}}_name[value]; ok && value != 0 {
		return true
	}
	return false
}

func Check_{{.Name}}(value {{.Name}}) bool {
	return Check_{{.Name}}_I(int(value))
}

func Each_{{.Name}}(f func({{.Name}}) (continued bool)) {
	for _, value := range {{.Name}}_Slice {
		if !f({{.Name}}(value)) {
			break
		}
	}
}

func Each_{{.Name}}_I(f func(int) (continued bool)) {
	for _, value := range {{.Name}}_Slice {
		if !f(value) {
			break
		}
	}
}
// enum [{{.Name}}] end
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{{end}}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// TODO 添加枚举扩展代码
//<Extend>{{.GetExtendContent "Extend"}}//</Extend>
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
